package main

import (
	"gin_project/chapter05"
	"gin_project/rediect"
	router2 "gin_project/router"
	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default() //engine.Use(Logger(), Recovery())，Default具有日志log和恢复recover作用，多了两个中间件
	/*router := gin.New() //New也可以启动gin框架
	router.Use(gin.Logger(), gin.Recovery())*/

	//router.Use(chapter05.MiddleWare1)   //这里是全局中间件的使用，每个路由都会经过此中间件
	router.Use(chapter05.MiddleWare2()) //这里是全局中间件的使用，每个路由都会经过此中间件
	//router.Use(chapter05.MiddleWare3)   //这里是全局中间件的使用，每个路由都会经过此中间件
	//router.Use(chapter05.MiddleWare1,chapter05.MiddleWare2(),chapter05.MiddleWare3)//上面三个中间件也可以写在一起

	/*router.GET("/", func(ctx *gin.Context) { //Get方法有两个参数，一个是路径router，另一个是路径对应的匿名函数处理器
		ctx.String(200, "hello gin") //String(code int, format string, values ...any)返回两个参数，其中字符串可以展示在前端页面
	})*/

	router.LoadHTMLGlob("template/*") //template/*可以匹配views文件夹下面所有的文件
	//router.LoadHTMLFiles("file1.html", "file2.html", "...") //所有文件要一一列出来

	router.Static("/static", "static") //加载前端模板修饰文件
	//路由分组
	router2.Router(router)

	//Redirect 重定向
	router.GET("/redirect_A", rediect.RedirectA)
	router.GET("/redirect_B", rediect.RedirectB)
	router.Run(":8080") //run方法返回一个err:func (engine *Engine) Run(addr ...string) (err error)
	//router.Run(":9000") //默认端口8080，可手动修改端口号，也可以通过配置文件来决定端口号
}
